package com.moyuwanjia.ui;

import com.moyuwanjia.mapper.IUserMapper;
import com.moyuwanjia.service.UserService;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @author 摸鱼丸加~
 * @create 2022-04-19 11:26
 * 模拟表现层，用于调用业务层
 */
public class Client02_createBean {
    public static void main(String[] args){
        // new创建对象的方式使得程序的独立性很差，所以要设法解耦

//              --------------------ApplicationContext的方式(立即加载)------------------------
//      方式一：
//              1.在spring中，通过核心容器对象解析（ClassPathXmlApplicationContext实现类的方式）
                ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean.xml");

//              2.根据xml中配置的bean的id读取对应信息,这里获取的方式很多，演示了两种获取方式
//              2.1.获取到id对应的对象后，进行强转
                UserService userService = (UserService) applicationContext.getBean("userService");
                UserService userService1 = (UserService) applicationContext.getBean("userService");
//              2.2.同样通过id获取，我们传递一个字节码，让spring自动强转
                IUserMapper userMapper = applicationContext.getBean("userMapper",IUserMapper.class);

                System.out.println(userService == userService1);
                System.out.println(userMapper);

                //手动关闭容器
                applicationContext.close();


    }
}
